export default{
  //开启命名空间
  namespaced:true,
  
 state:() => ({
   //收货地址 读取本地的收货地址数据，初始化address对象
   //JSON.parse 将字符串转换为 对象
   address:JSON.parse(uni.getStorageSync('address') || '{}'),
   //登录成功之后的token字符串
   token:uni.getStorageSync('token') || '',
   //用户基本信息
   userInfo:JSON.parse(uni.getStorageSync('userinfo') || '{}'),
   //重定向的object对象{openType,from}
   redirectInfo:null
 }),
 
 mutations:{
   //持久化存储地址数据
   saveAddressToStorage(state){
     uni.setStorageSync('address',JSON.stringify(state.address))
   },
   //持久化存储用户信息
   saveUserInfoToStorage(state){
     uni.setStorageSync('userinfo',JSON.stringify(state.userInfo))
   },
   //持久化存储token字符串
   saveTokenToStorage(state){
     uni.setStorageSync('token',JSON.stringify(state.token))
   },
   //更新收货地址
   updateAddress(state,address){
     state.address = address
     //调用持久化存储地址的方法
     this.commit('m_user/saveAddressToStorage')
   },
   //更新用户的基本信息
   updateUserInfo(state,userinfo){
     state.userInfo = userinfo
     //调用自身模块下的saveUserInfoToStorage方法，把用户信息持久存储到本地
     this.commit('m_user/saveUserInfoToStorage')
   },
   //更新token字符串
   updataToken(state,token){
     state.token = token
     this.commit('m_user/saveTokenToStorage')
     console.log('token存储成功！')
   },
   //更新重定向的信息对象
   updateRedirectInfo(state,info){
     state.redirectInfo = info
   }
 },
 
 getters:{
   // 收货详细地址的计算属性
     addstr(state) {
       if (!state.address.provinceName) return ''
   
       // 拼接 省，市，区，详细地址 的字符串并返回给用户
       return state.address.provinceName + state.address.cityName + state.address.countyName + state.address.detailInfo
     }
 },
  
}